Skip to content

fix(desktop): enable Windows mesh-llm builds and address Compute Share startup/MeshLLM debug logging/non-image models trying to parse image input - #3223

Open
stevepresley wants to merge 4 commits into
block:mainfrom
stevepresley:fix/windows-mesh-llm-2836-upstream
Open

Conversation

@stevepresley

@stevepresley stevepresley commented Jul 27, 2026

Copy link
Copy Markdown

fix: enable Windows mesh-llm desktop builds

Closes #2836
Closes #3300

Summary

  • Enable the mesh-llm feature for Windows release and canary desktop builds.
  • Bundle required Windows MeshLLM native runtime DLL dependencies as Tauri resources and register their directory at runtime.
  • Avoid Windows stack overflows during mesh start and managed-agent start by running heavy startup work on larger-stack OS threads.
  • Make Compute Share startup more resilient/idempotent and fix stale progress UI behavior.
  • Add opt-in MeshLLM diagnostic logging controls in Compute → Advanced.
  • Add relay-mesh protection so prior tool-result images are not replayed into text-only shared-compute LLM requests.

Validation

Validated locally on Windows 11:

  • cargo fmt --manifest-path desktop/src-tauri/Cargo.toml --all
  • cargo check --manifest-path desktop/src-tauri/Cargo.toml --features mesh-llm
  • pnpm typecheck
  • cargo check -p buzz-agent
  • cargo build -p buzz-agent --release --target x86_64-pc-windows-msvc
  • bash scripts/bundle-sidecars.sh x86_64-pc-windows-msvc
  • pnpm tauri build --target x86_64-pc-windows-msvc --bundles nsis --features mesh-llm --config "{\"bundle\":{\"createUpdaterArtifacts\":false}}"

Manual validation:

  • Installed the NSIS build on Windows 11.
  • Verified Settings → Compute no longer shows the mesh-llm feature-stub behavior.
  • Verified Compute Share starts and serves requests.
  • Verified Windows MeshLLM native runtime dependency loading works with bundled MinGW DLLs.
  • Verified managed buzz-agent starts from the installed app.
  • Verified relay-mesh LLM calls no longer fail with the text-only model media-input 422 caused by replayed tool-result images.
  • Verified MeshLLM diagnostic logging toggle works at runtime.

Related/out of scope findings

Windows relay-mesh validation also reproduced existing ACP/agent delivery behavior where a model may produce Activity/final text without publishing a DM/channel message, and failed ACP turns can be retried later. That is out of scope for this Windows mesh-llm packaging/runtime PR.

Refs #2698
Refs #2421
Refs #2681

@stevepresley
stevepresley requested a review from a team as a code owner July 27, 2026 22:08
@michaelneale

Copy link
Copy Markdown
Contributor

@stevepresley thanks - that is a big change and not all windows related is it?

@stevepresley

stevepresley commented Jul 28, 2026

Copy link
Copy Markdown
Author

@stevepresley thanks - that is a big change and not all windows related is it?

It started as mostly Windows related, but these three items are cross-platform.

  • Make Compute Share startup more resilient/idempotent and fix stale progress UI behavior.
  • Add opt-in MeshLLM diagnostic logging controls in Compute → Advanced.
  • Add relay-mesh protection so prior tool-result images are not replayed into text-only shared-compute LLM requests.

I'll update the title

@stevepresley stevepresley changed the title fix(desktop): enable Windows mesh-llm builds fix(desktop): enable Windows mesh-llm builds and address Compute Share startup/MeshLLM debug logging/non-image models trying to parse image input Jul 28, 2026
@stevepresley

stevepresley commented Jul 28, 2026

Copy link
Copy Markdown
Author

@michaelneale opened #3300 to track the 3 other issues fixed in this PR. Let me know if you want me to split it out into a second PR

Signed-off-by: stevepresley <github@stevepresley.net>
…m-2836-upstream

Signed-off-by: stevepresley <github@stevepresley.net>

# Conflicts:
#	desktop/src-tauri/src/commands/mesh_llm.rs
#	desktop/src/features/mesh-compute/ui/MeshComputeSettingsCard.tsx
Signed-off-by: stevepresley <github@stevepresley.net>
@stevepresley
stevepresley force-pushed the fix/windows-mesh-llm-2836-upstream branch from dcd0ed9 to c35bbda Compare July 31, 2026 18:30
Signed-off-by: stevepresley <github@stevepresley.net>
@stevepresley
stevepresley force-pushed the fix/windows-mesh-llm-2836-upstream branch from 073672b to b478dad Compare July 31, 2026 18:44
tlongwell-block added a commit that referenced this pull request Aug 3, 2026
…#4524)

## Summary

Official Linux desktop packages (`.deb` / AppImage) are built without
`--features mesh-llm`, so they ship the `mesh_llm_stubs` backend and
Settings → Compute always fails with `mesh-llm feature not enabled`.
This PR adds the feature flag to the two Linux build commands:

- `release.yml` → `release-linux` job
- `linux-canary.yml` → canary build

That's the whole diff — 2 lines. Fixes #3788 (Linux); see also #3841
(dup with UI-gating PR #3914) and the Windows twin #2836/#3223.

## Why no native prebuild step (unlike the macOS job)

The macOS job carries Metal llama prebuild/cache steps from #798. Linux
doesn't need an equivalent:

- `mesh-llm-host-runtime` is compiled with `dynamic-native-runtime` and
installs the recommended runtime on first use (verified by sha256
checksum over HTTPS; upstream's signature verification path is not yet
implemented — default policy is `RequireChecksum`, per
`mesh-llm-runtime-install/src/lib.rs`)
(`desktop/src-tauri/src/mesh_llm/mod.rs` —
`initialize_mesh_native_runtime`), so release builds work on clean
machines without bundling llama.cpp.
- Upstream publishes Linux x86_64/aarch64 runtime bundles for the pinned
`v0.74.0` line, and `scripts/ensure-mesh-native-runtime.sh` already maps
`meshllm-native-runtime-linux-x86_64-cpu` / `linux-aarch64-cpu` for
local/e2e use.
- The unmerged branch `micn/mesh-node-download` (`96f29417a`) treats
even the macOS prebuild steps as removable dead weight for the same
reason.

## Background

The omission is historical drift, not a decision: Linux packaging
predates the mesh feature flag (#693), mesh became opt-in for
build-cost/reliability reasons (#823, #1183), and #1221 re-enabled it
for releases by editing only the macOS build line. `release-linux` and
the later `linux-canary` copy were never revisited.

The mesh shutdown hard-exit/relaunch path is gated `all(mesh-llm,
target_os = "macos")` because ggml/Metal destructors abort on macOS;
ordinary mesh shutdown (`shutdown_mesh_runtime`) is cross-platform, so
Linux falls through to the generic path.

## Validation

- [x] `./bin/cargo check --manifest-path desktop/src-tauri/Cargo.toml
--features mesh-llm` green at base `2c0ac2467` (feature graph compiles
at the pinned v0.74.0 line)
- [ ] Linux canary run with this change: AppImage/.deb build succeeds
and binary contains real `mesh_llm` symbols (not `mesh_llm_stubs`)
- [ ] Installed package: cold-start → Settings → Compute → runtime
download → serve → clean shutdown

The last two need a Linux run/host. **Note (from review):**
`linux-canary.yml` is `workflow_dispatch`-only and its `Require main`
step rejects non-main refs, so the canary cannot run on this branch
pre-merge — and `.github/workflows/**` matches no ci.yml paths-filter,
so this PR's own CI does not exercise the changed lines. Validation
sequencing is therefore merge → dispatch linux-canary on main →
live-package pass, with a trivial 2-line revert as the escape hatch.

Signed-off-by: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@buzz.block.builderlab.xyz>
Co-authored-by: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@buzz.block.builderlab.xyz>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants